package com.chalk.model;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * 系统定时任务表(TaskJob)实体类
 *
 * @author maxiaoqiang
 * @since 2019-03-28 09:54:13
 */
@ApiModel(value = "TaskJob", description = "系统定时任务表")
@Data
@TableName("t_task_job")
public class TaskJob {

    /**
     * 系统定时任务id
     */
    @ApiModelProperty(name = "id", value = "系统定时任务id")
    @TableId(type = IdType.ID_WORKER_STR)
    private String id;


    /**
     * job编号
     */
    @ApiModelProperty(name = "jobNo", value = "job编号")
    @TableField("job_no")
    private String jobNo;

    /**
     * job名（只能由英文字母组成，命名方法请参照java类成员的命名规范，例如indexJob）
     */
    @ApiModelProperty(name = "jobName", value = "job名（只能由英文字母组成，命名方法请参照java类成员的命名规范，例如indexJob）")
    @TableField("job_name")
    private String jobName;

    /**
     * job关联的类的类名（该类必须存在）
     */
    @ApiModelProperty(name = "jobClassName", value = "job关联的类的类名（该类必须存在）")
    @TableField("job_class_name")
    private String jobClassName;

    /**
     * job描述
     */
    @ApiModelProperty(name = "jobDescription", value = "job描述")
    @TableField("job_description")
    private String jobDescription;

    /**
     * job类型(0：普通的时间间隔,1：cron表达式)
     */
    @ApiModelProperty(name = "jobType", value = "job类型(0：普通的时间间隔,1：cron表达式)")
    @TableField("job_type")
    private Integer jobType;

    /**
     * 时间规则：类型是0内容为执行间隔（单位为秒），如果该值小于等于0，则任务只会在启动时执行一次，不会重复执行。类型为1内容则是cron表达式
     */
    @ApiModelProperty(name = "timerRule", value = "时间规则：类型是0内容为执行间隔（单位为秒），如果该值小于等于0，则任务只会在启动时执行一次，不会重复执行。类型为1内容则是cron表达式")
    @TableField("timer_rule")
    private String timerRule;

    /**
     * 可用标识（1：可用，0：不可用）
     */
    @ApiModelProperty(name = "isAvailable", value = "可用标识（1：可用，0：不可用）")
    @TableField("is_available")
    private Integer isAvailable;

    /**
     * 创建时间
     */
    @ApiModelProperty(name = "createTime", value = "创建时间")
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(name = "updateTime", value = "更新时间")
    @TableField("update_time")
    private Date updateTime;

    /**
     * 操作人id（根据操作人类型会对应不同的表记录）
     */
    @ApiModelProperty(name = "operatorId", value = "操作人id（根据操作人类型会对应不同的表记录）")
    @TableField("operator_id")
    private Long operatorId;

    /**
     * 操作人类型（0、系统自动操作，1、平台人员操作，2、商家人员操作，3、会员操作）
     */
    @ApiModelProperty(name = "operatorType", value = "操作人类型（0、系统自动操作，1、平台人员操作，2、商家人员操作，3、会员操作）")
    @TableField("operator_type")
    private Integer operatorType;

    /**
     * 是否已删除（逻辑删除，1、已删除，0、未删除，默认0）
     */
    @ApiModelProperty(name = "isDeleted", value = "是否已删除（逻辑删除，1、已删除，0、未删除，默认0）")
    @TableField("is_deleted")
    private Integer isDeleted;

}